/*
======================================================================
vecmath.c

Basic vector and matrix functions.

Ernie Wright  17 Sep 00
====================================================================== */

#include <math.h>


float dot(float a[], float b[])
{
	return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}


void cross(float a[], float b[], float c[])
{
	c[0] = a[1] * b[2] - a[2] * b[1];
	c[1] = a[2] * b[0] - a[0] * b[2];
	c[2] = a[0] * b[1] - a[1] * b[0];
}


void normalize(float v[])
{
	float           r;

	r = (float)sqrt(dot(v, v));
	if(r > 0)
	{
		v[0] /= r;
		v[1] /= r;
		v[2] /= r;
	}
}
